叠加分析 Sample详情

最后更新时间:2019年6月17日

叠加分析是地理信息系统最常用的提取空间隐含信息的手段之一。该方法源于传统的透明材料叠加,即将来自不同的数据源的图纸绘于透明纸上,在透光桌上将其叠放在一起,然后用笔勾出感兴趣的部分或提取出感兴趣的信息。

地理信息系统的叠加分析是将有关主题层组成的数据层面进行叠加,产生一个新的数据层面的操作,其结果是原来的要素被分割、剪断、套合,然后生成新的要素,新要素综合了原来两层要素所具有的属性。也就是说,空间叠加,不仅产生新的空间特征,还将实体的属性联接起来,产生新的属性。借助叠加分析可以进行空间数据相交、求并、相减等多种空间分析操作。

空间叠加分析涉及到一系列的运算,现将叠加运算总结为以下五种类型:点对区运算、线对区运算、区对区运算、点对线运算、区对点运算。每种类型对应一定的逻辑运算,生成的结果也不尽相同,如下表所示:

分析类型 叠加分析功能 结果
点对区 相交、相减 点简单要素类
线对区 相交、相减、求并、判别 线简单要素类
区对区 相交、相减、求并、判别、对称差 区简单要素类
点对线 相交 点简单要素类
区对点 相交、相减 区简单要素类

下方图片以区和区的叠加分析展示了求交、求并、相减、求对称差的功能作用。

求交.png 求并.png 相减.png 对称差.png

在进行以下空间逻辑运算之前,首先需要根据对应的接口准备待分析的几何对象。类似缓冲分析中几何对象的获取方法,可以通过地图要素查询从Feature中获取Geometry;也可以先绘制图形,然后转换为Geometry;还可以直接根据坐标数据构建Geometry。其中查询方式最常用。在此不展开讲述,可以参考缓冲分析部分的文档。

1 求交

即求两个数据集的交集的操作,两个数据集中相交的部分被保存到结果数据集中,其余部分被排除。

//构造空间分析对象
SpaAnalysis spaAnalysis = new SpaAnalysis();
//计算两个几何对象的交集
Geometry geoIntersection = spaAnalysis.intersection(geometryA, geometryB);

求交.jpg

2 求并

求两个数据集的并集的操作,用“输入几何对象”将“被求并几何对象”打散,分开为多个元素,然后将所有要素信息全部记录到结果数据中。简单地说,如果求并的是两个有相交区域的区要素,结果为3个图元:相交部分、裁剪掉相交区域的原始两图元。

Geometry geometryUnion = spaAnalysis.union(geoPolygonA, geoPolygonaB);

求并.jpg

3 相减

相减,即从几何对象A中“减去”与几何对象B相重叠的部分。

Geometry geometryUnion = spaAnalysis.difference(geoPolygonA, geoPolygonaB);

相减.jpg

4 对称差

对称差即获取数据集A与叠加数据集B相交图元以外的部分。

Geometry geoSymmetricDifference = spaAnalysis.symmetricDifference(geometryA, geometryB);

对称差.jpg

5 分割

分割操作,只能用线对象对区或线几何对象进行分割。

Geometry geoSplit = spaAnalysis.split(geometryB,(GeoLine)geometryA);

分割.jpg

6 合并

与求并操作不同的是,合并是将两个对象合并为一个对象。

Geometry geoMerge = spaAnalysis.merge(geometryA, geometryB);

合并.jpg

说明:上述的各种叠加分析,都是对两个几何对象的操作,接口中需要传入两个几何对象,其中第一个参数的对象表示被分析的对象,第二个参数是用来叠加分析的对象。例如相减difference接口中第一个几何对象是被“减去”的,第二个是用来执行“减去”操作的对象。